### プロジェクト5 レインボーアンビエントライト **1. 説明** 2812RGB LEDはプログラム可能なカラフルで夢のような光であり、その色、明るさ、リズムを調整できます。このレインボーアンビエントライトは、動的な装飾として自由に使用できます。また、「音楽に合わせて踊る」ように制御することも可能です。重要なのは、アラームとしても改良できる点です。内蔵センサーが周囲環境を検知し、色、明るさ、リズムを変化させてユーザーに警告します。 **2. 動作原理** ![](media/A53.png) データプロトコルはシングルラインのリターン・トゥ・ゼロコード通信モードを採用しています。電源投入後にピクセルがリセットされると、DIN端子がコントローラーからのデータを受信します。最初に到着した24bitのデータは最初のピクセルによって抽出され、内部データレジスタに送られます。 残りのデータは増幅回路によって増幅され、DOUTポートを通じて次のカスケードされたピクセルに送信されます。 ピクセルを通過するごとに信号は24bitずつ減少します。 さらに、ピクセルは自動整形および転送技術を採用しているため、ピクセルのカスケード数は信号伝送速度によってのみ制限されます。 **3. 配線図** ![](media/A54.png) **4. テストコード** 2812 RGBを点灯させ、その色を設定する方法を学びましょう。 1. 2つのコードブロックをドラッグします。 ![](media/A55.png) 2. 「RGB LED」パートから以下のブロックをドラッグし、ピンをIO15、LEDの数を6に設定します。 ![](media/A56.png) 3. 「RGB LED」パートから以下のブロックをドラッグし、明るさを20に設定します。 ![](media/A57.png) 4. 以下のブロックをドラッグし、LEDの番号を0、1、2、3、4、5に設定し、それぞれ赤、緑、青、黄、紫、白の色を選択します。 ![](media/A58.png) 5. 以下のブロックを追加します。 ![](media/A59.png) **完成コード:** ![](media/A60.png) **5. テスト結果** コードをアップロードし、配線を接続して電源を入れると、LEDが以下のように異なる色で点灯します。 ![](media/A61.png) **6. 知識拡張** この拡張プロジェクトでは、ミニライトショーを作りましょう! 4つの「繰り返し」ブロックを入れ子にし、その中に「変数+」を追加し、各ループの最後に対応する変数を0にクリアします。 ![](media/A62.png) 上記の3つの変数を「RGB」ブロックに入れて色の値を制御し、リフレッシュモジュールを追加します。 ![](media/A63.png) RGBを「色を表示」ブロックに入れて色を表示し、表示するLEDを制御する変数itemを定義します。 ![](media/A64.png) foreverモジュールを使ってRGB LEDを制御し、0から5までサイクルして順に点灯させます。 ![](media/A65.png) **完成コード** ![](media/A66.png) **7. コード説明** 1. 2812 RGBの数を設定します。開発ボードのピンは複数の2812 RGB LEDを制御できるため、事前に数を設定し、接続されたピンを選択します。 ![](media/A67.png) 2. 2812 RGBの明るさを設定します。0〜255の範囲で明るさの値を入力し、255が最も明るいです。 ![](media/A68.png) 3. このブロックはすべての2812 RGBを消灯します。 ![](media/A69.png) 4. 2812 RGBの表示を制御します。ピンを選択した後、空欄に点灯させるLED番号と色を指定できます。例えば「0から0」は最初のLEDのみ点灯を意味します。コードをアップロードすると、最初のLEDが設定した色で点灯します。 **注意:** 空欄には変数も入れられるため、ライトショーを作成可能です。 ![](media/A70.png) 5. 2812 RGBの色を設定します。赤、緑、青の値で表示色を調整できます。このブロックは2812 RGBの色設定に追加可能です。 ![](media/A71.png) 6. 制御したいLED番号を入力し、色を選択することで単一の2812 RGB表示を制御できます。 ![](media/A72.png) 7. 2812 RGBはリフレッシュ後に設定した色を表示します。 ![](media/A73.png)